package com.app.service.user;

import com.app.domain.bo.user.UserBo;
import com.app.domain.page.Page;
import com.app.domain.po.user.UserPo;
import com.app.domain.vo.user.UserVo;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * 用户方法
 */
public interface UserService extends IService<UserPo> {

    /**
     * 用户列表
     *
     * @param bo 入参
     */
    Page<UserVo> lists(UserBo bo);

    /**
     * 用户搜索
     *
     * @param bo 入参
     */
    Page<UserVo> search(UserBo bo);

    /**
     * 获取登录用户信息
     */
    UserVo getRedisUser();

    /**
     * 根据ID获取用户信息
     *
     * @param userId 用户ID
     */
    UserVo details(Long userId);

    /**
     * 用户停封
     *
     * @param userId 用户ID
     */
    void stop(Long userId);

    /**
     * 修改用户
     *
     * @param bo 入参
     */
    void updateOne(UserBo bo);

    /**
     * 用户点赞
     *
     * @param userId 用户ID
     */
    void like(Long userId);

    /**
     * 重载用户
     *
     * @param token token
     */
    void refresh(String token);

}